<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>字符串2</title>
</head>

<body>
    <script>

        let str = 'abcdefgabcdefg'
        let a = str.indexOf('d')
        console.log(a); //3

        // indexOf()方法，用于在字符串中，从前往后查找指定的字符串第一次出现的位置
        // 如果找不到，返回-1

        let b = str.indexOf('你好')
        console.log(b); // -1
        let c = str.lastIndexOf('d')
        console.log(c); // 10

        // lastIndexOf()方法，用于在字符串中，从后往前查找指定的字符串 第一次出现的位置
        // 如果找不到，返回-1

        let d = str.lastIndexOf('你好')
        console.log(d); // -1
        let e = str.substring(3, 6)
        console.log(e); //def
        let f = str.slice(3, 6)
        console.log(f); //def

        // substring()方法，用于截取字符串，第一个参数是起始位置，第二个参数是结束位置
        // 注意：能取到起始位置，取不到结束位置
        // 字符串也有slice()方法，效果跟substring()方法是一样的
        // slice()方法的起始位置不能是负数，不能小于结束位置，否则无法截取字符串

        let g = str.substr(3, 6)
        console.log(g); // defgab

        // 注意：substring，slice，substr三个方法，如果只传1个参数
        // 表示从起始位置往后全部截取。

        let h = str.startsWith('abc')
        console.log(h); //true
        let i = str.endsWith('abc')
        console.log(i); //false
        let j = str.includes('bcd')
        console.log(j); //true

        // startsWith()方法，用于判断字符串是否以指定的字符串开头
        // endsWith()方法，用于判断字符串是否以指定的字符串结尾
        // includes()方法，用于判断字符串是否包含指定的字符串

        let str2 = 'aBcDeFgaBcDeFg'
        let k = str2.toLowerCase()
        console.log(k);     // abcdefgabcdefg
        console.log(str2);  // aBcDeFgaBcDeFg
        // toLowerCase()方法，用于返回一份小写数据 不会影响原始字符串
        let m = str2.toUpperCase()
        console.log(m);     // ABCDEFGABCDEFG
        console.log(str2);  // aBcDeFgaBcDeFg
        // toUpperCase()方法，用于返回一份大写数据，不会影响原始字符串

        let n = str2.charAt(2)
        console.log(n); // c
        let o = str2[2]
        console.log(o); // c
        let p = str2.charCodeAt(2)
        console.log(p); // 99
        let q = str2.charCodeAt(3)
        console.log(q); // 68


        // charAt()方法，是根据下标，返回字符串中指定的字符串 === str[2]
        // charCodeAt()方法，根据下标，返回字符串中指定字符的ASCII编码

        console.log(encodeURI('你好'));                  // %E4%BD%A0%E5%A5%BD
        console.log(decodeURI('%E4%BD%A0%E5%A5%BD'));   // 你好

        // encodeURI()方法用于 转码汉字
        // decodeURI()方法用于 解码汉字

        let str3 = 'abc你好abc你好abc你好abc你好abc'
        let r = str3.split('你好')
        console.log(r); // ["abc", "abc", "abc", "abc", "abc"]

        // .split()方法，用于将原始字符串 根据指定的字符串 打散成数组

        // 数组有翻转方法，字符没有
        // 现在有一个字符串：abcdefg,怎么翻转一下这个字符呢？
        // 字符串有split()方法，数组有reverse()方法和join()方法
        console.log('---------------------');

        let string = 'abcdefg'
        // 原始字符串根据''打散成数组
        let aaa = string.split('')
        console.log(aaa); //["a", "b", "c", "d", "e", "f", "g"]
        // 数组翻转一下
        aaa.reverse()
        console.log(aaa); //["g", "f", "e", "d", "c", "b", "a"]
        // 再讲反转后的数组根据''拼接成新的字符串
        let bbb = aaa.join('')
        console.log(bbb); // gfedcba
        // 先转为数组，数组翻转，在将数组拼接回字符串
        let ccc = string.split('').reverse().join('')
        console.log(ccc); // gfedcba


        console.log('--------------------');


        let str4 = '我喜欢学习，我喜欢运动，我喜欢旅行'
        let str5 = str4.replace('喜欢','讨厌')
        console.log(str5); // 我讨厌学习，我喜欢运动，我喜欢旅行

        // .replace()用于替换原始字符串中，指定的第一个字符串
        // 第一个参数是需要替换的字符串，第二个参数是新的字符串









       









    </script>
</body>

</html>